Systems and methods for analyzing activity patterns in online communities

ABSTRACT

Embodiments relate to systems and methods for analyzing patterns and trends in online communities, and more particularly to organizing and analyzing data from community collaboration platforms and websites such as wikis, mailing lists, bug trackers, project management tools, and version control systems. At least one collaboration space can contain and store topics which can be submitted to and accessible by a plurality of users. The plurality of users can start new topics or add to existing topics within the at least one collaboration space. The at least one collaboration space can organize data within the topics according to various attributes of the data and the topics. The at least one collaboration space can send the organized data to a dashboard, which can create data organization aids to analyze the data.

FIELD

The present teachings relate to systems and methods for analyzingactivity patterns in online communities, and more particularly toorganizing and analyzing data from community collaboration platforms andwebsites such as wiki sites, mailing lists, version control systems,project management tools, and bug trackers.

BACKGROUND OF RELATED ART

Community collaboration platforms and websites are known which allowmembers from a public or private community to contribute to or modifycontent which is shared on the platforms and websites. Some forms ofthese platforms and websites can comprise wikis, mailing lists, versioncontrol systems, bug trackers, and project management tools such as, forexample, “Trac.” In particular, software developers utilize wikis as aplatform for the developers and the community to share information withthe goal to help solve the software problem or issue presented. Further,software developers utilize mailing lists, project management systems,and/or bugtrackers to submit updates, problems, fixes, and/or the liketo accomplish the same goals. Opening up the platform to a communityoften facilitates the development of the software by providing users aplatform to easily and freely submit and exchange updates and ideas

Existing collaboration platforms and software wikis provide no mechanismto organize and analyze the updates submitted to and informationexchanged within the platforms and utilities, such as, for example,analyzing the proportions of which groups are contributing to theupdates and exchanging information, predicting the market for a newpiece of software, determining the quality of the software idea, and/orperforming other analyses.

DESCRIPTION OF DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments of the presentteachings and together with the description, serve to explain theprinciples of the present teachings. In the figures:

FIG. 1 illustrates an overall system of an online community, accordingto various embodiments of the present teachings;

FIG. 2 illustrates a detailed overview of an online community, accordingto various embodiments;

FIG. 3 illustrates an exemplary diagram of a computer system, accordingto various embodiments;

FIG. 4 illustrates an exemplary output diagram, according to variousembodiments; and

FIG. 5 illustrates a flowchart of overall processing processing of theonline community, according to various embodiments.

DESCRIPTION OF EMBODIMENTS

For simplicity and illustrative purposes, the principles of the presentteachings are described by referring mainly to exemplary embodimentsthereof. However, one of ordinary skill in the art would readilyrecognize that the same principles are equally applicable to, and can beimplemented in, all types of collaboration environments, and that anysuch variations do not depart from the true spirit and scope of thepresent teachings. Moreover, in the following detailed description,references are made to the accompanying figures, which illustratespecific embodiments. Electrical, mechanical, logical and structuralchanges may be made to the embodiments without departing from the spiritand scope of the present teachings. The following detailed descriptionis, therefore, not to be taken in a limiting sense and the scope of thepresent teachings is defined by the appended claims and theirequivalents.

Embodiments of the present teachings relate to systems and methods fororganizing a collaboration environment. More particularly, the systemsand methods can access data in at least one collaboration spacecontributed by a plurality of users. The systems and methods canidentify categories of the data associated with the activity of a groupof users. The systems and methods can generate a report indicating thecategories of the data associated with each user in the plurality ofusers. These and other embodiments described herein provide a networkoperator or other user with enhanced analytic capability, without a needto manually inspect the updates and additions made to the at least onecollaboration space by individual users.

Reference will now be made in detail to exemplary embodiments of thepresent teachings, which are illustrated in the accompanying drawings.Where possible the same reference numbers will be used throughout thedrawings to refer to the same or like parts.

FIG. 1 illustrates an overall system 100 of an online community,according to various embodiments of the present teachings. Embodimentsdescribed herein can be implemented in or supported by the exemplaryenvironment illustrated in FIG. 1. The overall system 100 can provide acollaboration space environment 120, which comprehensively manages thetasks related to user collaboration.

In embodiments as shown in FIG. 1, a plurality of users 105 can accessresources including a network 110, the collaboration environment 120,and a dashboard 130. The network 110 can be implemented on one or moreservers or on other hardware, and can provide a gateway for theplurality of users 105 to access the collaboration environment 120. Thenetwork 110 can for example be or include a personal area network, alocal area network, a metropolitan area network, a wide area network,the Internet, an intranet, an extranet, a virtual private network, apeer-to-peer network, a wireless self-configuring network, or othernetworks or connections.

The plurality of users 105 can connect to the collaboration environment120 through the network 110. The collaboration environment 120 caninclude one or more collaboration spaces 115. Each of the one or morecollaboration spaces 115 can be created and/or moderated by one of theplurality of users 105, or by another internal or external user. Inembodiments, the one or more collaboration spaces 115 can eachcorrespond to an appropriate platform or utility such as, for example, awiki, a mailing list, a version control system, a bug tracker, a projectmanagement tool, and similar data tracking and collaborating utilities.The one or more collaboration spaces 115 can be connected to the network110 and can be configured to communicate with each other. The one ormore collaboration spaces 115 can be configured to gather and house datafrom other utilities or collaboration spaces such as, for example, amailing list, without actually gathering collaboration data from outsideusers.

The one or more collaboration spaces 115 can be configured to be used asa public collaboration environment, or in a business as an intranet orknowledge management system. The one or more collaboration spaces 115can be implemented or supported using known components of hardware,software, or combinations thereof. For example, the one or morecollaboration spaces 115 can be written in suitable programminglanguages, such as Java, C++, Python code, and the like to accommodate avariety of operating systems, machine architectures, etc. Inembodiments, the one or more collaboration spaces 115 can be implementedvia servers or other hardware accessible though a variety of operatingsystems, machine architectures, etc.

The plurality of users 105 can include users with access to the network,such as, for example, public users or business employees. The pluralityof users 105 can therefore comprise of any combination of users whocreate, submit to, and moderate the one or more collaboration spaces115, and outside users who have access to the one or more collaborationspaces 115. In embodiments, access to submit to or update the one ormore collaboration spaces 115 can be configured to requireauthentication of users of the plurality of users 105.

The one or more collaboration spaces 115 can be configured to be orinclude an environment or a collection of web pages designed to enablethe plurality of users 105 to access, contribute and/or modify contentcontained therein. Further, the one or more collaboration space can beconfigured to store data submitted by the plurality of users 105 suchas, for example, a mailing list, a version control system, a bugtracker, or a project management tool. The one or more collaborationspaces 115 can be configured with a storage means such as, for example,a database. The storage means can be configured to store and maintainthe data contained in the one or more collaboration spaces 115. Thestorage means can be implemented as a standard database. The storagemeans can be implemented using known database technology, such asrelational databases, object oriented databases, or other databases ordata stores.

The one or more collaboration spaces 115 can be configured to allow anenvironment for user collaboration such as, for example, a wiki. The oneor more collaboration spaces 115 can further be configured to store datasubmitted by users or gathered from utilities. For example, the one ormore collaboration spaces 115 can be configured to receive bug trackingdata from a bug tracking application. The one or more collaborationspaces 115 can include various content that can be categorized intoseparate technical or other topics, problems, forums, or other areas.For example, the one or more collaboration spaces 115 can include a pageor topic area focused on the improvement of a certain aspect of asoftware program. The content can for instance include content in theform of email, a blog update, an uploaded file, forum discussions, anIRC chat, a website, and other forms of communication. The plurality ofusers 105 can start new topics, problems, or other areas within the oneor more collaboration spaces 115. The plurality of users 105 can addcontent to or modify existing content within the topics, problems, orother areas in the one or more collaboration spaces 115. The pluralityof users 105 can add comments or ideas about existing content, or canadd comments or ideas on content that has not yet been added to the oneor more collaboration spaces 115.

The plurality of users 105 can choose which topics, problems, or otherareas that they want to start or address. For example, one of theplurality of users 105 can choose a topic relating to an improvement ofa software program, and can then add or modify content to that topic.Further, for example, one of the plurality of users 105 can start a newtopic, problem, or other area addressing an improvement of a softwareprogram. When one of the plurality of users 105 adds new content,modifies existing content, poses a question, makes a comment, orperforms any other change to the topic in the one or more collaborationspaces 115, the data in the one or more collaboration spaces 115 can beaccordingly updated to reflect the change. The updated can be performedsuch that any of the plurality of users 105 can access the updatedcontent once the update is made. The one or more collaboration spaces115 can include a revision history such that any addition ormodification is stored in the database 120 and is viewable to theplurality of users 105. The plurality of users 105 can access therevision history to locate and view additions or modifications containedtherein.

In embodiments, the one or more collaboration spaces 115 can beconfigured to gather and store data from the plurality of users 105, andfrom application programs and utilities. The one or more collaborationspaces 115 can each correspond to different data mining andcollaborating utilities such as, for example, mailing lists, versioncontrol systems, bug trackers, project management tools, and similardata tracking and collaborating utilities. The one or more collaborationspaces 115 can be configured to communicate with and send data to eachother.

When one of the plurality of users 105 or a data mining utility submitsor modifies content in the one or more collaboration spaces 115, the oneor more collaboration spaces 115 can make a data record. The data recordcan include data relating to the submission or modification of thecontent such as, for example, the user's email address, username andlocation, a timestamp, an indication of the user's activity within theone or more collaboration spaces 115, a category of the topic or projectbeing submitted or modified, and other data types. For example, the datarecord can indicate that the project being updated, modified, orsubmitted is related to hardware, a software improvement, a part of adevelopment environment, or other areas. The data record can alsoinclude what type of change the user makes such as, for example, a codeaddition or modification, a comment, a question, and other changes. Thedata record can be stored in the storage means along with the content inthe one or more collaboration spaces 115.

The dashboard 130 can be configured to connect to the network 110 and tothe one or more collaboration spaces 115. The dashboard 130 can beconfigured to receive, read, analyze, and/or modify data records andother content from the one or more collaboration spaces 115, the storagemeans, and/or the network 110.

The dashboard 130 can be a useful tool for a user to analyze one or morerelationships contained in the data records and other content within theone or more collaboration spaces 115. For example, the one or morecollaboration spaces 115 can be created and maintained by a company,organization, or other group. Further, different topics or projectswithin the one or more collaboration spaces 115 can be created,accessed, and submitted to by outside parties, or users within thecompany, organization, or other group. The dashboard 130 can compare thenumber of submissions or updates in a given topic or project by outsideparties to the number of submissions or updates by users within thegroup which creates or maintains the one or more collaboration spaces115.

The dashboard 130 can gauge that if, for example, a topic or project hasmany collaboration submissions from outside users with outside domainemails or if a stored mailing list has a lot of submitted fixes, thenthere can be an increased likelihood that the topic or project has ahigh commercial interest, that the topic or project contains problems orerrors, that the topic or project requires patches, or otherindications. In contrast, if a topic or project has few collaborationsubmissions from outside users or if a stored mailing list has fewsubmitted fixes, then there can for instance be a perceived likelihoodthat the topic or project has a comparatively lower commercial interest,that the topic or project contains few problems or errors, that thetopic or project requires few patches, or other indications. Further,the dashboard 130 can identify individual areas of a topic or projectthat are being most investigated, which can help pinpoint whichindividual areas may need the most attention or may have the mostcommercial interest. Similarly, the dashboard 130 can use the data todetermine which topics, projects, or parts thereof may not be worthpursuing from a business standpoint.

The dashboard 130 can be configured to automatically calculate,organize, output, store, or display data for viewing or use by a user.In embodiments, a user can configure the dashboard 130 to create andsend reports, graphs, charts, lists, tables, display devices, or otherforms of data organization based on customizable data criteria. Forexample, a user can configure the dashboard to create a daily, weekly,monthly, or other graph of the topics in the one or more collaborationspaces 115 which receive the most updates and submissions from outsideutilities or from the plurality of users 105.

The dashboard 130 can be implemented as hardware, software, orcombinations thereof The dashboard 130 and can be configured to run onany or all of the one or more collaboration spaces 115, or executeremotely on a separate computer system as illustrated. For example, thedashboard 130 can integrate with the software or hardware of the one ormore collaboration spaces 115, or can be written separately in a varietyof programming languages, such as Java, C++, Python code, and the liketo accommodate a variety of operating systems, machine architectures,etc.

FIG. 2 illustrates a detailed overview of an online community accordingto various embodiments of the present teachings. FIG. 2 includes thecollaboration environment 120, the one or more collaboration spaces 115,the network 110, and the dashboard 130 as shown in FIG. 1. The dashboard130 as shown in FIG. 2 can be configured with an analysis engine 205, aninput application programming interface (API) 210, and an output API215. The input API can be configured to receive or retrieve the data 220from the network 110 and the one or more collaboration spaces 115. Thedata 210 can comprise the data records created in the one or morecollaboration spaces 115. The data 210 can represent the submissions andcontributions of the plurality of users 105 within the collaborationenvironment 120.

The analysis engine 205 can be configured to contain logic to performthe receiving, organizing, and outputting as described below. Theanalysis engine 205 can be configured to connect to the input API 210and the output API 215. The analysis engine 205 can further beconfigured to receive or retrieve the data 220 from the input API 210.The analysis engine 205 can further be configured to read, analyze,consolidate, and/or modify the data 220 received from the input API 210.

The analysis engine 205 can be configured to organize the data 220 intothe type of submission or modification such as, for example, emails,source code, blog posts, file uploads, forum discussions, IRC chats,websites, and other forms of submission and modification. For example,the analysis engine 205 can extract and organize user-related attributesfrom the data 220 such as, for example, the user's email address, username and location, timestamp, an indication of the user's activitywithin the one or more collaboration spaces 115, and other dataattributes stored in the data 220. The analysis engine 205 can beconfigured to organize the extracted information from the data 210, andoutput the organized information to the output API 215. For example, theanalysis engine 205 can be configured to organize and output a list ofthe emails of the plurality of users 105 who submit and modify contentin a particular topic or problem in the one or more collaboration spaces115. In embodiments, the analysis engine 205 can store data andinformation in a data repository 230.

The dashboard 130 can be configured to connect with the one or morecollaboration spaces 115 through the input API 210. The input API 210can be configured to request or receive additional data from the one ormore collaboration spaces 115. For example, the dashboard 130 canrequest the email addresses of the users who have contributed to aparticular topic or problem in the one or more collaboration spaces 115,and the dashboard 130 can retrieve the email addresses and send them tothe analysis engine 205.

The analysis engine 205 can be configured to create reports, graphs,charts, lists, tables, display devices, or other forms of dataorganization. For example, the analysis engine 205 can create a chartdetailing the relative proportions of all of the email addresses ofusers of the plurality of users 105 who have contributed to a particulartopic presented in the one or more collaboration spaces 115. For furtherexample, the analysis engine 205 can create a report indicating theidentity of the domain names from which users have emailed content intothe one or more collaboration spaces 115, and/or the relativeproportions of email or other traffic received from specific domains.For still example, the analysis engine 205 can be configured to create agraph detailing the relative update activity of particular topicspresented in the one or more collaboration spaces 115.

The analysis engine 205 can be configured to send output data and othercontent to an outside user, network, computer, or any other software orhardware component via the output API 215 in the form of an outputreport 225. The output report 225 can be a report, list, or other recordor form of data organization. For example, the output report 225 can bea chart of all of the email addresses of users of the plurality of users105 who have contributed to a particular topic presented in the one ormore collaboration spaces 115. In embodiments, output report 225 can bereceived by an outside component for storage or display such as, forexample, a hard drive, server, monitor, touch screen, or other deviceused to store or display data.

In embodiments, a user can use the dashboard 130 to customize the datareceived from the one or more collaboration spaces 115 and to createreports, graphs, charts, lists, tables, or other records or forms ofdata organization. The user can customize the data organization aids andtheir associated content for personal use, presentations, temporary use,or for other reasons. The dashboard 130 or the user of the dashboard 130can customize the data or to send the output report 225 to anotherclient, computer, server, or other storage system. The dashboard 130 orthe user of the dashboard 130 can create data organization aids usingany or all of the attributes from any or all parts of the output data,including, for example, emails, source code, blog posts, file uploads,forum discussion, IRC chats, websites and other forms of submission andmodification.

FIG. 3 illustrates an exemplary computer system 300, according tovarious embodiments. The computer system 300 can be configured tocommunicate with the network 110. In embodiments as shown, the computersystem 300 can comprise a processor 306 communicating with memory 308,such as electronic random access memory, operating under control of orin conjunction with an operating system 302. The operating system 302can be, for example, a distribution of the Linux™ operating system, theUnix™ operating system, or other open-source or proprietary operatingsystem or platform. The processor 306 also communicates with arepository 310. While illustrated as a remote repository in the computersystem 300, the repository 310 can be local within the computer system300, and the computer system 300 can be configured to communicate withthe repository 310.

The processor 306 further communicates with a network interface 304,such as an Ethernet or wireless data connection, which in turncommunicates with one or more networks 110, such as the Internet orother public or private networks. The processor 306 also communicateswith the memory 302, the network interface 304, and the repository 310to execute control logic and perform the assignments and processesdescribed above. The processor 306 can further communicate with thedashboard 130 to execute the functions described in embodiments. Otherconfigurations of the computer system 300, associated networkconnections, and other hardware and software resources are possible.

FIG. 4 is an exemplary output diagram 400 composed of collaborationdata, according to various embodiments. The output diagram 400 can becreated from the output report 225 sent from the analysis engine 205 inthe dashboard 130 via the output API 215. The output diagram 400 cancreated by the analysis engine 205 or by an end component which receivesthe output report 225.

Output diagram 400 as shown in FIG. 4 includes a pie chart 405 and atitle bar 410. As shown in FIG. 4, the title bar 410 includes a titlegenerally relevant to the pie chart 405. The output diagram 400 refersto a project in the one or more collaboration spaces 115 relating to asoftware product, such as “Cobbler.” Further, the pie chart 405 in theoutput diagram 400 contains the email domains of users who update orcontribute to the “Cobbler” project in the one or more collaborationspaces 115. The pie chart 405 details the proportions of the emaildomains of users who update the “Cobbler” project. For example, userswith the email domain “redhat.com” make 34% of the updates andcontributions to the “Cobbler” project, users with the email domain“gmail.com” make 33% of the updates and contributions to the “Cobbler”project, and according percentages of the email domains “byte-code.com”and “opensourcedev.com” as shown in FIG. 4. In embodiments, the outputdiagram 400 can display the total number of updates and contributions tothe “Cobble” project. Further, in embodiments, the output diagram 400can be configured to display any type of organization of the output datacontained in the one or more collaboration spaces 115 in accordance Withthe embodiments of the present teachings as described above.

FIG. 5 illustrates a flowchart of overall processing of the onlinecommunity, according to various embodiments of the present teachings. In502, processing can begin. In 504, the one or more collaboration spaces115 can receive updates and contributions from users and dataorganization utilities. For example, the plurality of users 105 cancontribute to a topic within a wiki. In 506, the dashboard 130 canretrieve or receive the updates and contributions from the one or morecollaboration spaces 115. In 508, the dashboard 130 can organize thedata received from the one or more collaboration spaces 115 and createdata organization aids. In 510, the dashboard 130 can output the dataorganization aids in the form of output reports. For example, thedashboard can create a pie graph such as the one depicted in FIG. 4. In512, processing can repeat, return to a prior processing point, jump toa further processing point, or end.

The foregoing description is illustrative, and variations inconfiguration and implementation may occur to persons skilled in theart. For example, resources described as singular or integrated can inembodiments be plural or distributed, and resources described asmultiple or distributed can in embodiments be combined. The scope of thepresent teachings is accordingly intended to be limited only by thefollowing claims.

1. A method of organizing a collaboration environment, comprising: accessing data in at least one collaboration space contributed by a plurality of users; identifying categories of the data associated with the plurality of users; and generating a report indicating an association between the categories of the data and the plurality of users.
 2. The method of claim 1, wherein the report comprises the categories of the data in a display form.
 3. The method of claim 1, further comprising: storing the data and the report.
 4. The method of claim 1, wherein the plurality of users access the at least one collaboration space from a secure connection.
 5. The method of claim 1, wherein the at least one collaboration space is accessible though the Internet.
 6. The method of claim 1, further comprising: outputting the report to an end user.
 7. The method of claim 1, wherein an end user generates the report.
 8. A system for organizing a collaboration environment, comprising: an interface to a network, the network connecting to at least one associated user terminal; and a reporting server, communicating with the network via the interface, the reporting server being configured to- access data in at least one collaboration space contributed by a plurality of users; identify categories of the data associated with the plurality of users; and generate a report indicating an association between the categories of the data and the plurality of users.
 9. The system of claim 8, wherein the network comprises at least one of a personal area network, a local area network, a metropolitan area network, a wide area network, the Internet, an intranet, an extranet, a virtual private network, a peer-to-peer network, and a wireless self-configuring network.
 10. The system of claim 8, wherein the report comprises the categories of the data in a display form.
 11. The system of claim 8, wherein the reporting server is further configured to store the data and the report.
 12. The system of claim 8, wherein the reporting server is further configured to output the report to an end user.
 13. The system of claim 8, wherein an end user generates the report.
 14. An application for organizing a collaboration environment, the application being embodied in a computer readable medium and comprising instructions for causing a computer to perform a method comprising: accessing data in at least one collaboration space contributed by a plurality of users; identifying categories of the data associated with the plurality of users; and generating a report indicating an association between the categories of the data and the plurality of users.
 15. The application of claim 14, wherein the report comprises the categories of the data in a display form.
 16. The application of claim 14, with the application further comprising instructions for causing a computer to store the data and the report.
 17. The application of claim 14, wherein the plurality of users access the at least one collaboration space from a secure connection.
 18. The application of claim 14,.wherein the at least one collaboration space is accessible though the Internet.
 19. The application of claim 14, with the application further comprising instructions for causing a computer to output the report to an end user.
 20. The application of claim 14, wherein an end user generates the report. 